iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
Security

從1到2的召喚羊駝補破網之旅系列 第 3

Day 3 :一本正經胡說八道

  • 分享至 

  • xImage
  •  

[鐵人賽] Day 3:臺O資訊安全中心違規事件處理流程

寫在前面(情境重現)

第一份工作、第一個禮拜,結果我就「中獎」了。
事情是這樣的:我為了熟悉中心網路環境,下載了 Advanced Port ScannerWinMTR,想要看看路由品質和設備分布。沒想到操作不到半小時,被斷網了臺O資安系統警:_CERT_FTP

「您的電腦 FTP 連線異常,可能被植入後門程式,有試探密碼之行為。」

https://cert.ntu.edu.tw/Module/Index/ip.php

https://ithelp.ithome.com.tw/upload/images/20250917/20165500KHxEE3QiSc.png

就這樣,距離我報到不滿2個工作日,「違規事件處理流程」真實上演在我身上。


事件摘要(Summary)

  • 日期:2025-08-04
  • 事件:因執行網段掃描與 traceroute,觸發臺O資安告警 _CERT_FTP
  • 處理流程:立即隔離 → 掃毒 → 工具檢查 → 換臨時 IP → 回報主管。
  • 完成時間:11:01 完成初步處理與回報。

事件時間軸(Timeline)

  • 07:50 — 進辦公室,下載並執行 Advanced Port Scanner、WinMTR。
  • 08:21 — 臺O資安系統偵測異常並告警。
  • 08:34 — 接獲通知,主機遭到隔離。
  • 08:40 — 拔網路線、與主管聯繫,進入違規事件處理流程。
  • 09:00–11:00 — 依流程完成掃毒、檢查、換 IP。
  • 11:01 — 完成回報,事件初步結束。

檢查與處理結果

我依照「臺O違規主機 IP 限制通知」的流程,逐項檢查:

檢查項目 結果 備註
賽門鐵克掃毒 ✅ 正常 無惡意軟體偵測
GetSusp 檢查 ✅ 正常 無異常(若未執行需補執行)
TcpLogView ✅ 正常 無異常長期對外連線
Process Explorer ✅ 正常 無不明執行檔
Regedit Run/RunOnce ✅ 正常 無自動啟動可疑項目
HouseCall 掃描 ✅ 正常 無異常
是否更換臨時電腦 改以更換臨時 IP 處理
更換臨時 IP ✅ 已更換 140.112.x.x,觀察 24 小時無異常
事件回報時間 11:01 完成 已回報主管並存證截圖

可能觸發原因(推測)

  • WinMTR 下載來源涉及 FTP / SourceForge,觸發異常流量。
  • Port Scanner 預設掃描範圍過大,誤掃到臺大中繼設備。
  • 或者兩者同時產生「可疑流量」,被資安系統視為 FTP 掃描行為。

改善與反省

這時候需要「一本正經胡說八道」的能力,扔出寶貝球大喊「就決定是你了,阿爾宙斯」!!

https://ithelp.ithome.com.tw/upload/images/20250917/2016550042Val8NINI.png

接著看喜歡run
還是先pull再run

https://ithelp.ithome.com.tw/upload/images/20250917/20165500jzfJIS0yGY.png

Windows PowerShell
著作權(C) Microsoft Corporation。保留擁有權利。

安裝最新的 PowerShell 以取得新功能和改進功能!https://aka.ms/PSWindows

PS C:\Users\thor_> ollama run gpt-oss:20b
>>> 我下載掃描網路探測軟體* **WinMTR** 下載來源涉及 FTP / SourceForge,觸發異常流量。現在需要撰寫省思以及改善追蹤步驟,
... 包含短期、中期、長期追蹤檢核。請協助撰寫並擬定檢核表
Thinking...
We need to write reflection (省思) and improvement tracking steps: short-term, mid-term, long-term. Provide a checklist.

We should provide in Chinese, with detailed steps, and a table for checklist. Use bullet points. Provide suggestions for
monitoring, documentation, risk assessment, process improvements, training, incident response.

Let's structure:

- 省思 (reflection)
- 改善追蹤步驟:
    - 短期 (within 1 week)
    - 中期 (within 1 month to 3 months)
    - 長期 (6 months to 1 year)
- 检核表: a table with columns: 追蹤項目, 負責人, 預期完成時間, 檢核標準, 狀態, 備註

Include key points: verify source authenticity, use checksum, verify signature, update policy, install antivirus, monitor logs,
network segmentation, access control.

Let's produce answer.
...done thinking.

## 1. 省思(事後反思)

| 事件 | 觸發原因 | 影響範圍 | 學習點 |
|------|----------|----------|--------|
| 從 **FTP / SourceForge** 下載 **WinMTR** 時,系統發出異常網路流量 | 來源可信度未經驗證;缺乏下載前的安全檢查(MD5/ SHA‑256)
| 1 台伺服器網路連線被暫停,內部報告被拷貝;若未被即時發現,可能造成外部攻擊路徑 | 1. **來源驗證**:未對下載來源進行驗證;
<br>2. **文件完整性**:未做校驗碼比對;<br>3. **流程缺失**:無「安全下載」工作流程;<br>4. **監控缺位**:無即時異常流量檢測機制。
 |

> **關鍵反思**
> - 安全性不是一次性的設定,而是「持續改進」的循環。
> - 所有下載行為都應落於「安全操作手冊」之下,並在上線前完成驗證。
> - 監控與日誌管理的自動化能快速捕捉異常,減少人為延遲。

---

## 2. 改善追蹤步驟(短期/中期/長期)

| 時間框架 | 目標 | 具體行動 | 成果指標 | 負責人 |
|----------|------|----------|----------|--------|
| **短期(0–1 週)** | **即時堵塞風險** | 1. 立即停止 WinMTR 進程,關閉相關端口。 <br>2. 透過防火牆 / IDS 重新規則,阻斷相同來源
 IP。 <br>3. 檢查系統日誌,確認無進一步惡意行為。 | 1. 所有異常流量立即被阻斷;<br>2. 24 小時內完成初步調查報告。 | IT 安全團隊
|
| **中期(1–3 週)** | **建立「安全下載」流程** | 1. 建立下載清單(可信來源、官方 URL、簽名檢查)。 <br>2. 設定自動校驗(
MD5/SHA‑256)機制。 <br>3. 將「安全下載」納入 ITIL 或 SOP,並加簽。 | 1. 100% 下載流程符合 SOP。 <br>2. 新增自動校驗腳本已部署於
 100% 開發/生產環境。 | IT 管理 / DevOps |
| **長期(3–12 週)** | **系統化安全治理** | 1. 引入安全資訊與事件管理(SIEM)系統,整合日誌、網路流量、漏洞掃描。 <br>2. 進行定
期「安全審核」與「滲透測試」。 <br>3. 建立「零信任」原則,對外部來源採取最小權限。 | 1. SIEM 完整覆蓋 100% 主要資產。 <br>2. 每季
完成一次全網安全審核。 <br>3. 任何外部下載必須經過驗證並記錄。 | 資訊安全主管 / 風險管理 |
| **持續(持續改進)** | **維持與學習** | 1. 定期訓練與演練(季度演習)。 <br>2. 監控業界安全公告,及時更新防護規則。 <br>3. 建立
「安全事件學習庫」供全體參考。 | 1. 所有員工完成安全意識訓練。 <br>2. 事件回溯學習率 100%。 | 培訓主管 / 安全治理 |

---

## 3. 檢核表(追蹤與驗證工具)

| 追蹤項目 | 具體檢核內容 | 檢核工具 / 方法 | 預期完成時間 | 狀態 | 備註 |
|----------|--------------|-----------------|---------------|------|------|
| **1. 來源驗證** | 下載 URL 是否為官方、經驗證的域名;是否存在可疑鏡像 | DNS / WHOIS、SSL 憑證、官方簽名 | 1 週內 | 待審核 | 需
更新信任證書列表 |
| **2. 校驗碼比對** | MD5 / SHA‑256 是否與官方提供值相符 | 下載後自動腳本 | 1 週內 | 待審核 | 若不符,立即阻止安裝 |
| **3. 下載流程 SOP** | 下載前需經批准、經過驗證、已備份 | SOP 文件、審批流程 | 3 週內 | 待審核 | 加入工作流程自動化 |
| **4. 防火牆規則** | 來源 IP / 域名是否被阻斷;是否啟用 HTTPS | 防火牆日誌、規則清單 | 1 週內 | 待審核 | 定期評估例外 |
| **5. SIEM 覆蓋** | 所有重要節點是否已送入 SIEM;事件告警是否正確 | SIEM Dashboard、報告 | 12 週內 | 待審核 | 需配置網路流量、系
統日誌 |
| **6. 漏洞掃描** | 下載軟體版本是否存在已知漏洞;系統是否已打補丁 | 漏洞掃描工具、CVSS | 6 週內 | 待審核 | 需更新漏洞資料庫 |
| **7. 員工訓練** | 下載安全意識訓練完成率 | LMS 報表 | 4 週內 | 待審核 | 必須涵蓋「安全下載」主題 |
| **8. 事件回溯** | 是否有完整的事件報告、教訓、改進建議 | 事件檔案、學習庫 | 3 週內 | 待審核 | 需建立共享文檔 |
| **9. 定期審核** | 是否按期進行安全審核、滲透測試 | 審核報告 | 每季 | 待審核 | 需要外部第三方審核者 |
| **10. 監控告警** | 異常流量告警是否即時觸發、調查 | SIEM / IDS 告警 | 1 週內 | 待審核 | 需要設定閾值 |

### 檢核表使用說明

1. **填寫**:負責人於預期完成時間前完成填寫,並提供證明文件或截圖。
2. **審核**:資訊安全主管或審核團隊在每周例會時核實狀態。
3. **追蹤**:若狀態為「未完成」或「風險未減輕」,即刻調配資源加速完成。
4. **報告**:每月生成進度報告,並提交給管理層。

---

## 4. 進一步的建議

| 主題 | 具體建議 |
|------|----------|
| **供應鏈安全** | 引入 **Sigstore**、**Notary** 等開源驗證技術,為所有外部下載建立公開簽名鏈。 |
| **零信任** | 所有下載均經「最小權限」的多因素驗證;將下載環境隔離(sandbox、容器)再投入正式環境。 |
| **自動化** | 以 **GitOps** / **Infrastructure as Code (IaC)** 管理下載規則,確保變更可追蹤。 |
| **日誌保留** | 以 **WORM**(Write‑Once‑Read‑Many)磁碟或區塊鏈記錄關鍵事件,避免日誌被篡改。 |
| **員工教育** | 每六個月更新案例教材,加入最新威脅情報(APT、CVE)示例。 |
| **事故模擬** | 以「紅隊 / 黃隊」演練方式測試從下載到發現異常的完整流程,找出漏洞。 |

---

### 總結

- **即時回應**:確保在短期內堵住異常流量,防止潛在擴散。
- **流程化管理**:將「安全下載」納入日常 SOP,並自動化校驗。
- **系統化治理**:長期部署 SIEM、零信任、定期審核,建立可持續的安全文化。

透過上述反思、追蹤、檢核表的落實,可大幅降低類似「下載未驗證軟體導致異常流量」事件的發生機率,並提升整體資訊安全治理水平。

>>> Send a message (/? for help)

結語

雖然有點丟臉,但也提醒我:掃描與檢測不是不能做,而是要「合規」地做
我自己估計最大的禍首應該是SourceForge,不然掃描對象只有我們內部網路不該會觸發。

另外,如果不下載工具ollama這樣呼叫也很不錯

https://ithelp.ithome.com.tw/upload/images/20250917/20165500XE3qLUtoSo.png


最簡易版本(同步,直接用 httpx 檢查 HTTP 回應)

只做最小改動:掃 192.168.10.0/24 的每個 IP,對 http://IP 發 GET,回應即視為「存活(alive)」。需 pip install httpx

# simple_http_scan_sync.py
import ipaddress
import httpx

network = ipaddress.IPv4Network("192.168.10.0/24")
alive = []

for ip in network.hosts():
    url = f"http://{ip}"
    try:
        r = httpx.get(url, timeout=1.0)     # timeout 可調
        alive.append((str(ip), r.status_code))
    except Exception:
        # 無回應或連線失敗就略過
        pass

print("Alive hosts (ip, http status):")
for ip, status in alive:
    print(ip, status)

執行:python simple_http_scan_sync.py


推薦(稍好、非阻塞的非同步版本 — 更快、可控併發數)

如果要掃描整個 /24 建議用非同步版本以加速與控制併發數量(還是很簡潔)。

# simple_http_scan_async.py
import asyncio
import ipaddress
import httpx

NETWORK = "192.168.10.0/24"
CONCURRENCY = 100   # 同時最多幾個 request

async def check(ip, client, sem):
    url = f"http://{ip}"
    async with sem:
        try:
            r = await client.get(url, timeout=5.0)
            return str(ip), r.status_code
        except Exception:
            return None

async def main():
    net = ipaddress.IPv4Network(NETWORK)
    ips = [str(ip) for ip in net.hosts()]
    sem = asyncio.Semaphore(CONCURRENCY)
    results = []

    async with httpx.AsyncClient() as client:
        tasks = [asyncio.create_task(check(ip, client, sem)) for ip in ips]
        for coro in asyncio.as_completed(tasks):
            res = await coro
            if res:
                results.append(res)
                print("Alive:", res)

    print("\nSummary:")
    for ip, status in results:
        print(ip, status)

if __name__ == "__main__":
    asyncio.run(main())

執行:python simple_http_scan_async.py



上一篇
Day 2:今天沒有羊駝只有黃色emoji
下一篇
Day 4 :免費開源 = 要還的技術債
系列文
從1到2的召喚羊駝補破網之旅4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言